perm filename TEST1.VSB[P,JRA] blob sn#081404 filedate 1974-01-29 generic text, type T, neo UTF8
00100	
00200	
00300	(DEFPROP TRSUBST1 
00400	 (LAMBDA(X Y Z)
00500	  (COND ((ATOM Z) Z)
00600		((ATOM (CAR Z)) (CONS (CAR Z) (TRSUBST1 X Y (CDR Z))))
00700		((EQ (CAAR Z) (QUOTE ←))
00800		 (COND ((EQUAL Y (CADDAR Z))
00900			(CONS (LIST (QUOTE ←) X Y) (CONS (LIST (QUOTE ←) (CADAR Z) X) (TRSUBST1 X Y (CDR Z)))))
01000		       (T (CONS (CAR Z) (TRSUBST1 X Y (CDR Z))))))
01100		(T (CONS (TRSUBST1 X Y (CAR Z)) (TRSUBST1 X Y (CDR Z)))))) 
01200	EXPR)
01300	
01400	(DEFPROP VSUB1 
01500	 (LAMBDA(RL PL)
01600	  (PROG (CRL SPL DONE CRL1)
01700		(COND ((NULL PL) (RETURN NIL)))
01800		(SETQ CRL RL)
01900		(SETQ SPL PL)
02000	   VS1  (COND (DONE (GO VS3)))
02100		(SETQ DONE T)
02200		(SETQ CRL (RECSUB1 CRL CRL))
02300		(GO VS1)
02400	   VS3  (COND ((NOT DONE) (RETURN SPL)))
02500		(SETQ CRL1 CRL)
02600		(SETQ DONE NIL)
02700	   VS5  (COND ((NULL CRL1) (GO VS3)))
02800	(SETQ DONE NIL)
02900		(SETQ SPL (TRSUBST1 (CDAR CRL1) (CAAR CRL1) SPL))
03000		(SETQ CRL1 (CDR CRL1))
03100		(GO VS5))) 
03200	EXPR)
03300	
03400	(DEFPROP WHILASSEM 
03500	 (LAMBDA(BP IP CL CT)
03600	  (PROG (ALP ALS PA Y Z W R SASG SASGR TE ALF BET WFT ALFT RP)
03700		(PRINT (QUOTE L37410))
03800		(PRINT BP)
03900		(PRINT IP)
04000		(PRINT CL)
04100		(PRINT CT)
04200		(PRINT (QUOTE L37415))
04300		(PRINT (THV SASSERTLITS))
04400		(PRINT (THV ASSERTLITS))
04500		(SETQ WFT (THV FT))
04600		(PRINT (QUOTE L37425))
04700		(PRINT CL)
04800		(PRINT WFT)
04900		(SETQ IP (REVERSE IP))
05000	   WH2  (SETQ PA (CAR CL))
05100		(PRINT (QUOTE L37432))
05200		(PRINT PA)
05300		(PRINT WFT)
05400		(SETQ Y (READLIST (APPEND (LIST (QUOTE Y)) (EXPLODE (THSETQ (THV YN) (ADD1 (THV YN)))))))
05500		(SETQ Z (READLIST (APPEND (LIST (QUOTE Z)) (EXPLODE (THSETQ (THV ZN) (ADD1 (THV ZN)))))))
05600		(COND ((CDDR PA) (SETQ ALF (CAR PA)) (SETQ BET (CADR PA)))
05700		      (T (SETQ ALF (CAAR PA)) (SETQ BET (CADAR PA))))
05800		(SETQ ALFT (COND ((CDDAR WFT) (CAAR WFT)) (T (CAAAR WFT))))
05900		(SETQ BP (CONS (LIST (QUOTE ←) Y ALFT) BP))
06000		(SETQ LIFOL
06100		      (CONS (COND ((THASVAL (THV NT)) (SUBST Y ALFT (SUBST Z ALF (CAR LIFOL))))
06200				  (T (SUBST Y ALFT (SUBST Z BET (CAR LIFOL)))))
06300			    (CDR LIFOL)))
06400		(SETQ IP (APPEND IP (LIST (LIST (QUOTE ←) Y Z))))
06500		(SETQ ALP (CONS (CONS ALF Y) ALP))
06600		(SETQ ALS (CONS (CONS BET Z) ALS))
06700		(PRINT (QUOTE L37456))
06800		(PRINT PA)
06900		(COND ((CDDR PA) (SETQ SASG (APPEND (LIST (LIST (QUOTE ←) Z (CADDR PA))) SASG)) (GO WH4)))
07000		(SETQ R (CADR PA))
07100		(SETQ R
07200		      (APPEND (LIST (CAR R))
07300			      (COND ((CDR R) (COND ((CDDR R) (LIST (CADR R) (CADDR R))) (T (LIST (CADR R)))))
07400				    (T NIL))))
07500		(SETQ W (READLIST (APPEND (LIST (QUOTE W)) (EXPLODE (THV ZN)))))
07600		(SETQ RP R)
07700		(SETQ R (SUBST W BET R))
07800		(COND ((EQUAL R RP) (SETQ R (SUBST W ALF R))))
07900		(SETQ SASGR (APPEND (LIST (LIST (QUOTE IF) R (QUOTE THEN) (LIST (QUOTE ←) Z W))) SASGR))
08000	   WH4  (SETQ CL (CDR CL))
08100		(SETQ WFT (CDR WFT))
08200		(COND (CL (GO WH2)))
08300		(PRINT (QUOTE L38525))
08400		(PRINT ALP)
08500		(PRINT ALS)
08600		(PRINT SASG)
08700		(PRINT SASGR)
08800		(SETQ ALP (DEQ ALP))
08900		(SETQ ALS (DEQ ALS))
09000		(SETQ SASG (REVERSE (VSUB ALP SASG)))
09100		(SETQ SASGR (REVERSE (VSUB ALP SASGR)))
09200		(SETQ IP (VSUB1 ALS IP))
09300		(SETQ IP (VSUB ALP IP))
09400		(SETQ CT (VSUB ALP CT))
09500		(SETQ TE
09600		      (SUBPLANL (APPEND (LIST (LIST (QUOTE WHILE) (CONS NEGSGN CT) (QUOTE DO) (APPEND  IP SASGR)))
09700					(APPEND SASGR BP))
09800				(THV PLANL)))
09900		(PRINT TE)
10000		(RETURN TE))) 
10100	EXPR)
10200	
10300	(DEFPROP ALS 
10400	 (NIL ((H* (G* NIL*) NIL*) . Z1)) 
10500	VALUE)
10600	
10700	(DEFPROP IP 
10800	 (NIL (IF (VAR (G* NIL*))
10900	 	  THEN
11000		  (PROC2 Z NIL* (G* NIL*))
11100	 	  ELSE
11200		  ((← Z (H* (G* NIL*) NIL*)) (VARNOT Z NIL* (G* NIL*))))
11300	      (← Y1 Z1)) 
11400	VALUE)